#pragma once

#include <glad/gl.h>
#include <filesystem>
#include "Core.h"

namespace lazy {

    class Texture2D {
    public:
        ~Texture2D();
        static Ref<Texture2D> LoadFromFile(const std::filesystem::path& filePath);
        void Bind(uint32_t slot);
        GLuint GetTextureID() const;
        bool operator==(const Texture2D& other);
    private:
        GLuint m_TextureID;
        int m_Width, m_Height;
        GLenum m_Format;
        int m_MipmapLevel;
    };

} // lazy
